package br.com.fiap.trabalho.factory;

import javax.persistence.EntityManager;

import br.com.fiap.trabalho.dao.ActorDAO;
import br.com.fiap.trabalho.dao.CategoryDAO;
import br.com.fiap.trabalho.dao.JPAActorDAO;
import br.com.fiap.trabalho.dao.JPACategoryDAO;
import br.com.fiap.trabalho.dao.JPAMovieDAO;
import br.com.fiap.trabalho.dao.JPAStudioDAO;
import br.com.fiap.trabalho.dao.MovieDAO;
import br.com.fiap.trabalho.dao.StudioDAO;
import br.com.fiap.trabalho.util.JPAUtil;

public class JPADaoFactory extends DaoFactory {

	private static EntityManager em;
	
	private EntityManager getEntityManager(){
		if (em == null){
			em = JPAUtil.getEntityManager("persistenceUnit");
		}
		return em;
	}
	
	@Override
	public ActorDAO getActorDAO() {
		return new JPAActorDAO(getEntityManager());
	}

	@Override
	public MovieDAO getMovieDAO() {
		return new JPAMovieDAO(getEntityManager());
	}

	@Override
	public StudioDAO getStudioDAO() {
		return new JPAStudioDAO(getEntityManager());
		
	}

	@Override
	public CategoryDAO getCategoryDAO() {
		return new JPACategoryDAO(getEntityManager());
	}

}
